package com.lsh.oms.api.model.order;

import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 订单头DTO
 *
 * @author peter
 * @date 2018/11/1
 */
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@ToString
public class OrderHeadDTO implements Serializable {

    private static final long serialVersionUID = -1068419857494728841L;

    /**
     * ID
     */
    private Long id;

    /**
     * 订单号
     */
    private Long orderCode;

    /**
     * 订单类型
     */
    private Integer orderType;

    /**
     * 订单状态
     */
    private Integer orderStatus;

    /**
     * 客户编码
     */
    private Long userCode;

    /**
     * 收货地址编码
     */
    private Long addressCode;

    /**
     * 区域编码
     */
    private Integer regionCode;

    /**
     * 省
     */
    private Integer province;

    /**
     * 市
     */
    private Integer city;

    /**
     * 区
     */
    private Integer district;

    /**
     * 片区
     */
    private Integer area;

    /**
     * 地址信息
     */
    private String addressInfo;

    /**
     * 收货人信息
     */
    private String consigneeInfo;

    /**
     * 商品总数量
     */
    private BigDecimal goodsTotalQuantity;

    /**
     * 商品总金额
     */
    private BigDecimal goodsTotalAmount;

    /**
     * 商品优惠金额
     */
    private BigDecimal goodsDiscountAmout;

    /**
     * 订单折扣率
     */
    private BigDecimal orderDiscountRate;

    /**
     * 订单优惠金额
     */
    private BigDecimal orderDiscountAmout;

    /**
     * 优惠券总金额
     */
    private BigDecimal ticketCouponAmout;

    /**
     * 现金券总金额
     */
    private BigDecimal cashCouponAmount;

    /**
     * 运费
     */
    private BigDecimal freight;

    /**
     * 下单时间
     */
    private Integer orderTime;

    /**
     * 抹零金额
     */
    private BigDecimal floorAmount;

    /**
     * 支付类型（1-货到付款，2-在线支付）
     */
    private Integer payType;

    /**
     * 支付状态（0：未支付，1-已支付）
     */
    private Integer payStatus;

    /**
     * 支付流水号
     */
    private String paySequence;

    /**
     * 支付平台类型 1-支付宝, 2-微信，5-拉卡拉，6-微信扫码，8-支付宝扫码
     */
    private Integer payChannel;

    /**
     * 支付时间
     */
    private Integer payTime;

    /**
     * 支付减免金额
     */
    private BigDecimal payReliefAmout;

    /**
     * 应付金额
     */
    private BigDecimal expectPayAmount;

    /**
     * 实付金额
     */
    private BigDecimal actualPayAmount;

    /**
     * 父订单号
     */
    private Long parentOrderCode;

    /**
     * 仓储类型
     */
    private Integer storageType;

    /**
     * 是否美批订单
     */
    private Integer isMp;

    /**
     * 创建时间
     */
    private Integer createTime;

    /**
     * 更新时间
     */
    private Integer updateTime;

    /**
     * 更新时间
     */
    private Integer dealTime;

    /**
     * 是否有效（0:无效；1:有效）
     */
    private Integer valid;

    /**
     * 商城订单号
     */
    private String misOrderNo;

    /**
     * 商城订单号
     */
    private String MisParentOrderNo;

    /**
     * 销售信息(ext)
     */
    private String ext;

    /**
     * 销售信息(ext)
     */
    private String headMisInfo;
    /**
     * 下单备注
     */
    private String remark;

    private String supplierGroupId;
    /**
     * 订单支付流水信息
     */
    private List<MisOrderHeadForPayDTO> paySequences;

    private List<OrderDetailDTO> details;
}
